home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-10-04 | 2.4 KB | 101 lines | [TEXT/MPS ] |
- UNIT RandomNumbers;
-
- { This unit was written in MPW Pascal, v3.2.
-
- Jon Bell
- Dept. of Physics & Comp. Sci.
- Presbyterian College
- Clinton SC 29325
- Compuserve #70441,353
- October, 1991 }
-
- INTERFACE
-
- USES Sane;
-
- {----------------------------------------------------------}
-
- procedure InitRandomSeed (newSeed : longint);
-
- { Initializes the random number seed to "newSeed". You
- must call this procedure once, at the beginning of your
- program, before you use any of the following functions.
- As far as randomness is concerned, it makes no difference
- what value you use for "newSeed", so long as it isn't
- zero. Using different seeds merely gives you different
- sequences of "random" numbers. Using the same seed each
- time you run the program gives you the same sequence of
- "random" numbers each time, which may be useful for
- debugging. }
-
- {----------------------------------------------------------}
-
- function RandomSeed : longint;
-
- { Returns the current value of the random number seed. }
-
- {----------------------------------------------------------}
-
- function RandomReal : extended;
-
- { Returns a real number, "randomly" selected from the
- interval [0,1]. }
-
- {----------------------------------------------------------}
-
- function RandomInteger (max : longint) : longint;
-
- { Returns an integer, "randomly" selected from the
- interval [1,max]. }
-
- {----------------------------------------------------------}
- {----------------------------------------------------------}
-
- IMPLEMENTATION
-
- const
- m = 2147483647;
-
- var
- seed : extended;
-
- {----------------------------------------------------------}
-
- procedure InitRandomSeed (newSeed : longint);
-
- begin
- seed := newSeed
- end;
-
- {----------------------------------------------------------}
-
- function RandomSeed : longint;
-
- begin
- RandomSeed := round(seed)
- end;
-
- {----------------------------------------------------------}
-
- function RandomReal : extended;
-
- begin
- RandomReal := RandomX (seed) / m;
- end;
-
- {----------------------------------------------------------}
-
- function RandomInteger (max : longint) : longint;
-
- var
- ignore : extended;
-
- begin
- ignore := RandomX (seed);
- RandomInteger := (round(seed) mod max) + 1
- end;
-
- {----------------------------------------------------------}
-
- END.
-